﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Caixa.Model
{
	[Serializable]
	public class Movimentacao
	{
		#region "Fields"

		/// <summary>    
		/// Define a relação entre as propriedades do objeto 
		/// com o campo no banco de dados.
		/// OBS.: O Nome da constante deve ser o mesmo da propriedade.
		/// </summary>
		public static class Fields
		{
			public const string TABELA = "Movimentacao";

			public const string ID = "CodMovimentacao";
			public const string IDCONTA = "CodConta";
			public const string TIPO = "Tipo";
			public const string DATA = "Data";
			public const string DESCRICAO = "Descricao";
			public const string VALOR = "Valor";
			public const string SALDO = "Saldo";
		}

		#endregion

		#region " Enum "

		public enum TipoMovimentacao
		{
			Debito = -1,
			Credito = 1
		}

		#endregion

		#region " Properts "

		public int ID { get; set; }
		public int IDConta { get; set; }
		public TipoMovimentacao Tipo { get; set; }
		public DateTime Data { get; set; }
		public string Descricao { get; set; }
		public double Valor { get; set; }
		public double Saldo { get; set; }
		public int Fator
		{
			get
			{
				return Convert.ToInt32(this.Tipo);
			}
		}

		#endregion
	}
}
